\documentclass[a4paper,8pt]{extreport}
\usepackage{cmap}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english,russian]{babel}
\usepackage{tabularx,cite,enumerate,marvosym,ifthen,geometry}%tweaklist,
\usepackage[usenames,dvipsnames]{color}
%\renewcommand{\enumhook}{\setlength{\topsep}{1pt} \setlength{\itemsep}{-3pt}}
%\renewcommand{\itemhook}{\setlength{\topsep}{1pt} \setlength{\itemsep}{-3pt}}
% \geometry{left=6.2cm} \geometry{right=6.3cm}
% \geometry{top=2cm} \geometry{bottom=15.5cm} 
\usepackage[pdftex]{graphicx}
%\usepackage{epstopdf}
\setcounter{tocdepth}{1} %% setting the table of contents only for sections
\newcounter{ex}
\usepackage{fancybox,fancyhdr}
\fancyhead[R]{}
%\fancyhead[L]{}
%\fancyhead[C]{\colorbox{Magenta}{\textcolor{white}{\textbf{\thechapter--\thepage}}}}
%\fancyfoot[R]{}
%\fancyfoot[C]{\textcolor{Gray}{Правила пользования ресурсом hpc.cc.spbu.ru}}
%\fancyfoot[L]{}
\usepackage{listingsutf8}
\usepackage{framed}
\usepackage{textcomp}
\usepackage[unicode]{hyperref}

\usepackage{microtype} % а мне нравится(= (imposeren)

\usepackage{hyperref}

\begin{document}
\hypersetup{
    pdftitle={Правила пользования ресурсом hpc.cc.spbu.ru},
    pdfauthor={Лысов Виталий},
    pdfkeywords={linux, hpc, spbu}
}
%\thispagestyle{empty}
%\author{ \small Зароченцев Андрей, \small Лысов Виталий }
%\title{\textbf{Правила}}
%\maketitle
%\thispagestyle{empty}
\tableofcontents
\thispagestyle{empty}

%style of code listings
\lstset{language=, linewidth=1.0\textwidth, breaklines=true,
breakatwhitespace=true, frame=single, framexleftmargin=0em,
resetmargins=true,
%basicstyle=\footnotesize,
columns=flexible,
flexiblecolumns,
inputencoding=utf8,
extendedchars=\true,
escapechar=\%,
texcl,
}
\frenchspacing

\pagestyle{fancy}
\pagenumbering{arabic}

\chapter{Описание сервиса \textquotedblleftВысокопроизводительные вычисления\textquotedblright}

Назначение - сервис создан в дополнение к сервису «Виртуальная машина» (ВМ) для проведения расчетов по программам,
требующих большую вычислительную мощность (терафлопного уровня). Основные работы по отладке программ, 
подготовки данных и визуализации результатов проводятся на ВМ (рабочая среда). Выполнение расчетов на 
высокопроизводительном кластере проводится с использованием системы очередей. 

\section{Виртуальная машина}
Доступ к вычислительным ресурсам осуществляется через виртуальную машину пользователя. Назначение ВМ следующее:
\begin{itemize}
  \item Хранение обрабатываемых данных
  \item Разработка приложений
  \item Проведение вычислений
\end{itemize}
Для получения виртуальной машины необходимо заполнить заявку \url{http://www.ptc.spbu.ru/zayavlenie_vm.doc}, 
которую следует отправить по адресу \href{mailto:noc@ptc.spbu.ru}{noc@ptc.spbu.ru}.
По умолчанию заводится виртуальная машина со следующими характеристиками:
\begin{itemize}
  \item ОС: CentOS 5.5
  \item Количество ядер CPU: 4
  \item ОЗУ: 8Гб
  \item Жёсткий диск: /home -- 50 Гб, системные разделы -- 8 Гб. Управление разбиением -- lvm.
\end{itemize}

Список официально поддерживаемых операционных систем (ОС) опубликован в документе 
\url{http://www.vmware.com/pdf/vsphere4/r40/vsp_compatibility_matrix.pdf}  (Таблица 14, столбец Guest OS Cust). 
Не требуют согласования заявки на виртуальные машины со следующими предустановленными ОС: 
SLES 11 SP1, CentOS 5.5, Scientific Linux 5.5, Debian 5, Debian 6, Ubuntu 10.04 LTS, Fedora 14.

Установку коммерческих программных продуктов, требующих наличия лицензий, например, 
RHEL 5, RHEL 6 и т.д. необходимо предварительно согласовать со службой технической поддержки -- \href{mailto:noc@ptc.spbu.ru}{noc@ptc.spbu.ru}.

В системе заводятся дополнительно два пользователя: 
\begin{itemize}
  \item vmuser -- пользователь с административными (средствами sudo) правами, 
  \item Пользователь username, которого основан на фамилии и имени человека подавшего заявку на получение 
  виртуальной машины. Наделён правами постановки задач в очереди на имеющиеся HPC-ресурсы. При старте задачи его 
домашний каталог монтируется на соответствующие вычислительные узлы.
\end{itemize}

\section{Типы очередей}
Имеются 3 типа очередей -- короткая short, длинная long, и бесконечная infi. Каждая из них имеет свои особенности.

\subsection{short}
\begin{itemize}
  \item Высокий приоритет (задачи меньше стоят в очереди);
  \item Процессорное время ограничено 6-ю часами;
  \item Память ограничена 2 ГБ на процесс;
  \item Реальное время ограничено 9 часами;
  \item Количество задач разрешенных на выполнение одним пользователем -- 5;
  \item Количество задач в очереди от одного пользователя 20.
\end{itemize}
\subsection{long}
\begin{itemize}
 \item Низкий приоритет (задачи дольше стоят в очереди);
 \item Процессорное время ограничено 48-ю часами;
 \item Память ограничена 2 ГБ на процесс;
 \item Реальное время ограничено 72-мя часами;
 \item Количество задач разрешенных на выполнение одним пользователем -- 2;
 \item Количество задач в очереди от одного пользователя 10.
\end{itemize}

\subsection{infi}
\begin{itemize}
 \item Самый низкий приоритет (задачи дольше всех  стоят в очереди);
 \item Процессорное время не ограничено;
 \item Память ограничена 2 ГБ на процесс;
 \item Реальное время не ограничено;
 \item Количество задач разрешенных на выполнение одним пользователем -- 1;
 \item Количество задач в очереди от одного пользователя 5.
\end{itemize}
Доступ к очередям определяется конкретным договором (пользователем, задачей).
Для вычислений можно использовать 64 ядра (это 16 процессоров или 8 узлов).
Всего имеется 368 ядер, 46 узлов, 92 процессора.
Для обеспечения связи между узлами используются 1 Gb Eth и 10 Gb IB.
Оперативная память на узлах 16 GB (2GB на ядро) + 16GB swap.
Доступная дисковая память на ноде (/tmp) 3GB на процесс.
Дисковая память в домашней директории (/home/\$username) определяется конфигурацией ВМ и не рекомендуется для 
записи временных файлов из-за метода монтирования этой директории на рабочие узлы.

\section{Запуск задач}
\subsection{Скрипты для управления задачами}
Для пользования сервисом используются скрипты, в которых прописано необходимые параметры.
Для самостоятельного использования интерфейса torque читайте часть 3, с необходимыми параметрами. 

Для запуска задач используется скрипт submit-tp.
\begin{lstlisting}
~$ ~/submit-tp --help
usage:  
        --input -i filename		# Файл данных, по умолчанию отсутствует
        --np -n N			# требуемое кол-во ядер, по умолчанию 1
        --dir -d dirname		# директория, где будет исполнятся задача, по умолчанию текущая
        --file -f filename		# исполняемый файл (обязательная опция)
        --queue -q queue		# имя очереди (short, long или infinity). По умолчанию short
        --mpiver -v version		# версия MPI (mpich, openmpi-1.2, openmpi-1.4). По умолчанию mpi
        --outputfile -o file		# файл с результатами, по умолчанию отсутствует, стандартный вывод сохраняется в файле «имя задачи».o.«номер задачи». 
        --help -h			# сообщение о ключах
        --jobname -j jobname		# Имя задачи.По умолчанию  job.1295983423, где 1295983423 – сгенерированное число.
        --array -r numbers		# Номера задач в массиве задач (например 1-4, в этом случае запустяться 4 одинаковые задачи с именами «имя задачи»-1, «имя задачи»-2 и т.д.)
\end{lstlisting}

Для мониторинга задач используется скрипт status-tp.
\begin{lstlisting}
:~$ ~/status-tp --help
        -f taskaname      #информация о задании с именем "taskname" выдается при запуске задания. Не путать с именем задачи, которое задается пользователем и не уникальное.
        -q queue           #информация о очереди "queue"
        -a                      #информация обо всех очередях
        -p                      #информация о состоянии кластера (количество свободных узлов и общее кол-во узлов)
        -h                      # сообщение о ключах
\end{lstlisting}

\subsection{Примеры запуска задач}
\stepcounter{ex}
\subsubsection{Пример \arabic{ex}. Запуск скрипта “Hello Word” на 1 ядре}
\begin{lstlisting}
$ ~/submit-tp –f  ~/helloword.sh
2880.pbs-tp.hpc.spbu.ru

$ ll *2880
-rw------- 1 zar users 11 Jan 26 11:19 job.1296029939.e2880
-rw------- 1 zar users 11 Jan 26 11:19 job.1296029939.o2880
\end{lstlisting}

\stepcounter{ex}
\subsubsection{Пример \arabic{ex}. Запуск программы Pi скомпилированной openmpi-1.4 на 4-х нодах}
\begin{lstlisting}
$ ~/submit-tp -v openmpi-1.4 -j Pi-6 -n 4 -f Pi01 
2882.pbs-tp.hpc.spbu.ru
\end{lstlisting}

Просмотр всех очередей: 
\begin{lstlisting}
$ ./status-tp -a

pbs-tp.hpc.spbu.ru: 
                                                                         Req'd  Req'd   Elap
Job ID               Username Queue    Jobname          SessID NDS   TSK Memory Time  S Time
-------------------- -------- -------- ---------------- ------ ----- --- ------ ----- - -----
2882.pbs-tp.hpc.     zar      long-zar Pi-6                --      4  --    --    --  R   -- 
   node-20/0+node-19/0+node-18/0+node-17/0
\end{lstlisting}

Результат:
\begin{lstlisting}
$ ll Pi-6.*
-rw------- 1 zar users   0 Jan 26 11:26 Pi-6.e2882
-rw------- 1 zar users 138 Jan 26 11:28 Pi-6.o2882
\end{lstlisting}

\stepcounter{ex}
%\hypertarget{Firefly_ex}
\hypertarget{Firefly_ex}{\subsubsection{Пример \arabic{ex}. Запуск пакета Firefly с тестовым примером.}}
\begin{lstlisting}
$ ./submit-tp -i /usr/local/firefly/samples/condircbk.inp -n 2  -d /usr/local/firefly/mpich-dyn -f  /usr/local/firefly/mpich-dyn/firefly -j fireflay -v mpich -q short
2861.pbs-tp.hpc.spbu.ru
\end{lstlisting}

Результат
\begin{lstlisting}
$ ll fireflay.*
-rw------- 1 viz users      0 Jan 25 18:02 fireflay.e2861
-rw------- 1 viz users      0 Jan 25 18:02 fireflay.o2861
-rw-r--r-- 1 viz users 992847 Jan 25 18:05 fireflay.out
\end{lstlisting}

В этом случае стандартного вывода нет – файл fireflay.o2861 пустой, но создан файл fireflay.out, где fireflay – это имя задачи, ключ –j.

\stepcounter{ex}
\subsubsection{Пример \arabic{ex}. Запуск теста linpack на 4 ядрах}
\begin{lstlisting}
./submit-tp -i ~/linpack_10.3.0/benchmarks/mp_linpack/bin/linux/HPL.dat -n 4 -d ~/linpack_10.3.0/benchmarks/mp_linpack/bin/linux/ -f ~/linpack_10.3.0/benchmarks/mp_linpack/bin/linux/xhpl -q short -v mpich -j hpl4
\end{lstlisting}

В этом случае создается файл в директории: \verb*|~/linpack_10.3.0/benchmarks/mp_linpack/bin/linux|,
имя которого было  указано во входном файле \verb*|~/linpack_10.3.0/benchmarks/mp_linpack/bin/linux/HPL|.

\stepcounter{ex}
\subsubsection{Пример \arabic{ex}. Мониторинг загруженности кластера}
\begin{lstlisting}
$ ./status-tp -p
Total=368
Free=352
\end{lstlisting}

Здесь выводится полное кол-во доступных ядер Total и количество свободных ядер Free.

\stepcounter{ex}
\subsubsection{Пример \arabic{ex}. Запуск пакета Gaussian с тестовым примером}
\begin{lstlisting}
$ ~/submit-tp -n 4 -f ~/submit-g03.sh -i ~/test695.com -o ~/test695-n1.log
2983.pbs-tp.hpc.spbu.ru
\end{lstlisting}

Результат:
\begin{lstlisting}
-rw------- 1 viz users        0 Jan 28 13:18 job.1296209888.o2983
-rw------- 1 viz users       47 Jan 28 13:30 job.1296209888.e2983
-rw-r--r-- 1 viz users   966078 Jan 28 13:38 test695-n1.log
\end{lstlisting}

В этом случае стандартного вывода нет – файл  job.1296209888.o2983 пустой, но создан файл test695-n1.log.

\stepcounter{ex}
\subsubsection{Пример \arabic{ex}. Запуск массива задач в среде scilab с различным параметрами}
\begin{lstlisting}
$ ./submit-tp -v pbs -q long -r 6-7 -f ./impkvart01.sh -j scilab-impedanec
3096.pbs-tp.hpc.spbu.ru
$
\end{lstlisting}

Исполняемый скрипт:
\begin{lstlisting}
$ cat impkvart01.sh 
#/bin/sh!
export PATH=$PATH:/usr/local/scilab-5.3.0/bin
worckdir=`mktemp -d`;
cd $worckdir

cat << EOF > startall 
exec('$HOME/mathlab/all09.03.sce');
stacksize('max');
rt=stacksize()
SQS03('$HOME/math/B23_0708.ts',200,1000,100,0.$PBS_ARRAYID);
tr=stacksize()
exit
EOF

scilab -nwni -f startall

mv  $worckdir $HOME/${PBS_JOBNAME}.outdir
echo $HOME/${PBS_JOBNAME}.outdir
\end{lstlisting}

Рассмотрим исполняемый скрипт и объясним его содержание:
Объявление переменных окружения для исползуемого пакета Scilab.
\begin{lstlisting}
export PATH=$PATH:/usr/local/scilab-5.3.0/bin  
\end{lstlisting}

Создание и преход в тестовую директорию (это будет происходить уже на рабочей ноде)
\begin{lstlisting}
worckdir=`mktemp -d`;
cd $worckdir
\end{lstlisting}

Создание исполняемого скрипта scilab, с переменным параметром  \verb*|$PBS_ARRAYID|, котрый в нашем случае будет принимать значения 6 и 7.
\begin{lstlisting}
cat << EOF > startall 
exec('$HOME/mathlab/all09.03.sce');
stacksize('max');
rt=stacksize()
SQS03('$HOME/math/B23_0708.ts',200,1000,100,0.$PBS_ARRAYID);
tr=stacksize()
exit
EOF
\end{lstlisting}

Запуск созданного скрипта
\begin{lstlisting}
scilab -nwni -f startall
\end{lstlisting}

Копирование результатов и удаление их с рабочей ноды 
\begin{lstlisting}
mv  $worckdir $HOME/${PBS_JOBNAME}.outdir
\end{lstlisting}

вывод в стандартный вывод имени каталога с результатом:
\begin{lstlisting}
echo $HOME/${PBS_JOBNAME}.outdir
\end{lstlisting}

В итоге мы получаем 2 файла стандартного вывода:
\begin{lstlisting}
-rw------- 1 zar users   36 Feb  6 14:48 scilab-impedanec.o3096-6
-rw------- 1 zar users   36 Feb  6 14:47 scilab-impedanec.o3096-7
\end{lstlisting}

В которых прописаны имена итоговых каталогов:
\begin{lstlisting}
$ cat scilab-impedanec.o3096-6
/home/zar/scilab-impedanec-6.outdir
$
\end{lstlisting}

В итоговом каталоге мы видим результаты вычислений и сам сгенерированный скрипт, который запускался в scilab.
\begin{lstlisting}
$ ll /home/zar/scilab-impedanec-6.outdir
total 6750
-rw-r--r-- 1 zar users    4995 Feb  6 14:47 R357.1000.100
-rw-r--r-- 1 zar users     147 Feb  6 14:34 startall
-rw-r--r-- 1 zar users 1717355 Feb  6 14:47 XYSQS00-IM.357.1000.100
-rw-r--r-- 1 zar users 1717355 Feb  6 14:47 XYSQS00-RE.357.1000.100
-rw-r--r-- 1 zar users 1717355 Feb  6 14:47 YXSQS00-IM.357.1000.100
-rw-r--r-- 1 zar users 1717355 Feb  6 14:47 YXSQS00-RE.357.1000.100
$
$ cat /home/zar/scilab-impedanec-6.outdir/startall 
exec('/home/zar/mathlab/all09.03.sce');
stacksize('max');
rt=stacksize()
SQS03('/home/zar/math/B23_0708.ts',200,1000,100,0.6);
tr=stacksize()
exit
\end{lstlisting}

Мы видим, что последний параметр, который у нас и был переменным в папке с префиксом -6 и равен 0.6. В папке с префиксом -7 – соответственно 0.7.


\stepcounter{ex}
\subsubsection{Пример \arabic{ex}. Мониторинг и удаление задания}

Видим в очереди задание, Job Id = «имя задания»
\begin{lstlisting}
$ ./status-tp -a

pbs-tp.hpc.spbu.ru: 
                                                                         Req'd  Req'd   Elap
Job ID               Username Queue    Jobname          SessID NDS   TSK Memory Time  S Time
-------------------- -------- -------- ---------------- ------ ----- --- ------ ----- - -----
3097-5.pbs-tp.hp     zar      long-304 scilab-impedanec   2364     1  --    --    --  R 00:03
   node-ib-42/0
\end{lstlisting}

Смотрим подробные  характеристики задания
\begin{lstlisting}
$ qstat -f 3097.pbs-tp.hpc.spbu.ru pbs-tp.hpc.spbu.ru
qstat: Unknown Job Id 3097.pbs-tp.hpc.spbu.ru
qstat: illegally formed destination: pbs-tp.hpc.spbu.ru
[zar@alice24 ~]$ ./status-tp -f 3097.pbs-tp.hpc.spbu.ru
qstat: Unknown Job Id 3097.pbs-tp.hpc.spbu.ru
Job Id: 3097-5.pbs-tp.hpc.spbu.ru
    Job_Name = scilab-impedanec-5
    Job_Owner = zar@alice24.spbu.ru
    resources_used.cput = 00:02:58
    resources_used.mem = 38336kb
    resources_used.vmem = 2316676kb
    resources_used.walltime = 00:02:59
    job_state = R
    queue = long-3046
    server = pbs-tp.hpc.spbu.ru
    Checkpoint = u
    ctime = Sun Feb  6 19:25:17 2011
    Error_Path = alice24.spbu.ru:/home/zar/scilab-impedanec.e3097-5
    exec_host = node-ib-42/0
    Join_Path = n
    Keep_Files = n
    Mail_Points = a
    mtime = Sun Feb  6 19:25:18 2011
    Output_Path = alice24.spbu.ru:/home/zar/scilab-impedanec.o3097-5
    Priority = 0
    qtime = Sun Feb  6 19:25:18 2011
    Rerunable = True
    Resource_List.nodect = 1
    Resource_List.nodes = 1:ppn=1
    session_id = 2364
    Variable_List = PBS_O_HOME=/home/zar,PBS_O_LANG=en_US.UTF-8,
        PBS_O_LOGNAME=zar,
        PBS_O_PATH=/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/zar/b
        in,PBS_O_MAIL=/var/spool/mail/zar,PBS_O_SHELL=/bin/bash,
        PBS_O_HOST=alice24.spbu.ru,PBS_SERVER=localhost,
        PBS_O_WORKDIR=/home/zar,PBS_O_QUEUE=long-3046,PBS_ARRAYID=5
    comment = Job started on Sun Feb 06 at 19:25
    etime = Sun Feb  6 19:25:18 2011
    submit_args = -t 5 -N scilab-impedanec -l nodes=1:ppn=1 -q long-3046@pbs-t
        p.hpc.spbu.ru file1297009516.sh
    job_array_id = 5
    job_array_request = 5
    start_time = Sun Feb  6 19:25:18 2011
    start_count = 1
\end{lstlisting}

Удаляем задание:
\begin{lstlisting}
$qdel 3097.pbs-tp.hpc.spbu.ru@pbs-tp.hpc.spbu.ru
\end{lstlisting}

Проверяем удаление:
\begin{lstlisting}
$ ./status-tp -f 3097.pbs-tp.hpc.spbu.ru
qstat: Unknown Job Id 3097.pbs-tp.hpc.spbu.ru
$
\end{lstlisting}


\section{Программное обеспечение}
\subsection{Операционная система}
На вычислительных узлах установлен SUSE Linux Enterprise Server 10.1.

\subsection{Очереди}
\subsubsection{Torque}
TORQUE (англ. Terascale Open-Source Resource and QUEue Manager) — менеджер распределенных ресурсов для 
вычислительных кластеров из машин под управлением Linux и других Unix-подобных операционных систем, 
одна из современных версий Portable Batch System (PBS). Распространяется под свободной лицензией 
OpenPBS Software License. TORQUE разрабатывается и поддерживается сообществом на базе проекта OpenPBS. 
Для менеджера существует более 1200 патчей и расширений, написанных крупнейшими организациями и лабораториями, 
среди которых US DOE, USC, PNLL и др., это позволяет достичь высокой степени масштабируемости и 
отказоустойчивости менеджера как системы.

Основная функция TORQUE — распределение вычислительных задач среди доступных вычислительных ресурсов. 
TORQUE содержит собственный планировщик заданий, определяющий момент запуска задач. Аналогом TORQUE являются 
система Cleo, а также другие версии Portable Batch System. Существует также сторонний планировщик заданий Maui, 
который обладает значительно большей функциональностью по сравнению со стандартным, и, поэтому, часто 
используется совместно с TORQUE. Возможна интеграция TORQUE с OpenMP и MPICH.
\begin{itemize}
 \item Версия: 2.4.8
 \item Расположение: \verb|/usr/local|
 \item Ссылки: \href{http://www.clusterresources.com/products/torque-resource-manager.php}{WWW}
\end{itemize}

\subsection{Библиотеки}
\subsubsection{OpenMPI}
OpenMP (Open Multi-Processing) — открытый стандарт для распараллеливания программ на языках Си, Си++ и Фортран.
Описывает совокупность директив компилятора, библиотечных процедур и переменных окружения, которые предназначены 
для программирования многопоточных приложений на многопроцессорных системах с общей памятью.
\begin{itemize}
 \item Версия: 1.2, 1.4.
 \item Расположение: \verb|/usr/mpi/gcc/openmpi-1.2.5rc1|, \verb|/usr/local/openmpi-1.4.3|
 \item Ссылки: \href{http://www.open-mpi.org/}{WWW}
\end{itemize}

\subsubsection{MPICH}
MPICH (Message Passing Interface Chameleon) — это одна из самых первых разработанных библиотек MPI. 
На её базе было создано большое количество других библиотек как OpenSource, так и коммерческих.

\begin{itemize}
 \item Версия: 1.2.
 \item Расположение: \verb|/opt/mpich/ch-p4|, \verb|/opt/mpich/ch-p4mpd|
 \item Ссылки: \href{http://www.mcs.anl.gov/research/projects/mpich2/}{WWW}
\end{itemize}

\subsection{Компиляторы}
\subsubsection{Intel Composer XE}
Средство Intel® Composer XE 2011 сочетает в себе оптимизированный компилятор, высокопроизводительные библиотеки,
расширенные средства векторизации, поддержку OpenMP* и Intel® Parallel Building Blocks. Оно позволяет быстро и
легко оптимизировать производительность приложения для многоядерных процессоров для разных ОС с одной базой кода.
В пакет входят компиляторы C, C++, Fortran и библиотека MKL.
\begin{itemize}
 \item Версия: 12.0.1.107, 12.0.2.137
 \item Расположение: \verb|/usr/local/intel/|
 \item Ссылки: \href{http://software.intel.com/en-us/articles/intel-composer-xe/}{WWW}
\end{itemize}

\subsubsection{GNU Compiler Collection}
GNU Compiler Collection (обычно используется сокращение GCC) — набор компиляторов для различных языков 
программирования, разработанный в рамках проекта GNU. GCC является свободным программным обеспечением, 
распространяется фондом свободного программного обеспечения (FSF) на условиях GNU GPL и GNU LGPL и является 
ключевым компонентом GNU toolchain. Он используется как стандартный компилятор для свободных UNIX-подобных 
операционных систем.
В пакет входят компиляторы C, C++, Fortran и др.
\begin{itemize}
 \item Версия: 4.1
 \item Расположение: \verb|/usr/|
 \item Ссылки: \href{http://gcc.gnu.org/}{WWW}
\end{itemize}

\subsection{Пакеты прикладных прорамм}
\subsubsection{Firefly}
программный пакет для ab initio квантовохимических расчётов. Работает на Intel-совместимых процессорах 
архитектур x86 и x86-64 (только 32-битная версия). Основана на коде пакета программ GAMESS (US). Автором 
было переписано 60-70\% кода. Наибольшие изменения коснулись платформозависимых частей программы 
(выделение памяти, дисковый ввод-вывод, параллельный запуск), математических функций (например, 
матричные операции) и квантовохимических методов (метод Хартри-Фока, теория Мёллера-Плессе 
(англ. Møller–Plesset perturbation theory), теория функционала плотности). Вследствие этого PC GAMESS 
стал значительно быстрее, чем оригинальная программа. Основной разработчик программы — Александр Грановский.
С октября 2008 года проект дистанцировался от GAMESS (US) и поменял имя на Firefly. До 17 октября 2009 оба
имени использовались наравне друг с другом.
\begin{itemize}
 \item Версия: 7.1.G
 \item Расположение: \verb|/usr/local/firefly/mpich-dyn/|
 \item Ссылки: \href{http://classic.chem.msu.su/gran/gamess/}{WWW}, \hyperlink{Firefly_ex}{Пример}
\end{itemize}

\subsubsection{Gaussian}
Gaussian (читается как гауссиан) — компьютерная программа для расчета структуры и свойств молекулярных 
систем, включающая большое разнообразие методов вычислительной химии, квантовой химии, молекулярного 
моделирования. Создана нобелевским лауреатом Джоном Поплом и его исследовательской группой и с тех пор 
постоянно обновляется. Gaussian 09 — самая последняя реализация программы.
\begin{itemize}
 \item Версия: 03
 \item Расположение: \verb|/usr/local/g03/|
 \item Ссылки: \href{http://www.gaussian.com/}{WWW}
\end{itemize}

\subsubsection{Scilab}
Scilab — пакет прикладных математических программ, предоставляющий мощное открытое окружение для
инженерных (технических) и научных расчётов.
\begin{itemize}
 \item Версия: 5.3.0
 \item Расположение: \verb|/usr/local/scilab-5.3.0/|
 \item Ссылки: \href{http://www.scilab.org/}{WWW}
\end{itemize}

\subsubsection{GROMACS}
GROMACS (GROningen MAchine for Chemical Simulations, дословный перевод названия -- Гронингенская 
Машина для Химического Моделирования) пакет молекулярной динамики для моделирования физико-химических 
процессов, первоначально разработанный группой Германа Берендсена из департамента биофизической химии 
Гронингенского университета, сейчас развивается и поддерживается благодаря усилиям энтузиастов из разных 
стран, включая университет Уппсалы, Королевский технологический институт. Пакет предназначался в основом 
для моделирования биомолекул (белки и липиды), имеющих много связанных взаимодействий между атомами, но 
так как GROMACS обеспечивает высокую скорость расчетов для несвязанных взаимодействий. Считается, что 
это один из самых быстрых инструментов. GROMACS является программным обеспечением с открытым исходным 
кодом, выпущенным под лицензией GPL.
\begin{itemize}
 \item Версия: 4.5.3 (30.10.2010)
 \item Расположение: \verb|/usr/local/gromacs|
 \item Ссылки: \href{http://www.gromacs.org/}{WWW}
\end{itemize}

\subsubsection{MDynaMix}
MDynaMix (Molecular Dynamics of Mixtures)
\begin{itemize}
 \item Версия: 5.2 (18.12.2009)
 \item Расположение: \verb|/usr/local/md52|
 \item Ссылки: \href{http://www.fos.su.se/~sasha/mdynamix/}{WWW}
\end{itemize}

\subsubsection{WIEN2k}
WIEN2k – программный пакет для расчетов электронных структур в твердом веществе, использующий теорию
функционала плотности (DFT). Основан на методе (линеаризованных) присоединенных плоских волн полного
потенциала ((L)APW) + локальных орбиталей (lo), что является одной из наиболее точных схем для расчетов
зонных структур. В DFT может быть использована локальная аппроксимация (спиновой) плотности (LDA) или
улучшенная версия генерализованной аппроксимации градиента (GGA). Пакет WIEN2k использует полностью
электронную схему, включая релятивистские эффекты и имеет много достоинств. Грид-порт пакета включает
прототип последовательности операций для работы в гриде. Пакет разрешено использовать только обладателям
действительной лицензии WIEN2k.
\begin{itemize}
 \item Версия: 10.1
 \item Расположение: \verb|/usr/local/WIEN2k/WIEN2k_10.1_exec|
 \item Ссылки: \href{http://www.wien2k.at/}{WWW}
\end{itemize}

%\subsubsection{}
%\begin{itemize}
% \item Версия: 
% \item Расположение: \verb||
% \item Ссылки: \href{}{WWW}
%\end{itemize}

\chapter{Аппаратное обеспечение}

\section{Кластер виртуальных машин}
Вычислительный модуль HP (Шкафы HP 10647 G2, 47U).
\begin{itemize}
 \item Две корзины блейд-серверов состоят из:
    \begin{itemize}
      \item HP BladeSystem c7000
      \item VC-Flex-10 (10 GbE)
      \item QDR IB
      \item 16xBL460G7 (2 x X5670, 96GB RAM, 2 x 10GbE, 2 x QDR IB)
    \end{itemize}
  \item Две системы хранения HP состоят из:
    \begin{itemize}
      \item StorageWorks P4500 G2
      \item 240 NB сырой ёмкости (120 x 2TB SAS HDD)
    \end{itemize}
  \item Два коммутатора ProCurve E6600-48G-4XG (48 x 1GbE и 4 x 10GbE)
  \item Два  источника бесперебойного питания R12000/3 (3-фазное питание 12КВт)
\end{itemize}

Итого: 32 сервера, 64 процессора, 384 ядра, 3 TB RAM, 480 TB HDD, 40Gbps IB, пиковая производительность 4,5TFlop

\section{Кластер Т-Платформ}
Вычислительный кластер Т-Платформы T-EDGE96 HPC-0011828-001.
\begin{itemize}
 \item  48 вычислительных узлов. Всего: 96 процессоров, ядер 384, 768 Гб ОЗУ, 7,68 Тб дискового пространства.
  \begin{itemize}
    \item Размер: 2U
    \item Процессор: 2 процессора E5335 2.0ГГц
    \item ОЗУ: 16 Гб
    \item Диск: 160 Гб
\end{itemize}
  \item Управляющий узел 2 x X5640, 8 ГБ RAM, 3 ТБ
  \item Коммутаторы Gigabit Ethernet DGS-3324SR (10/100/1000), DGS-1224T
  \item Коммутаторы Infiniband Mellanox MHGS18-XSC 20 Гбит/с, полный дуплекс 10 Гбит/с, 4X SDR, F-X430046, F-X430047
  \item Аппаратные шкафы (АШ) APC, NetShelter SX 19"42U, AR3100
\end{itemize}

Итого: 48 серверов, 96 проц, 384 ядра, 768 ГБ RAM, 7,68 ТБ HDD, 20Gbps IB, пиковая производительность 3,07TFlops


\section{Кластер Itanium}
Один вычислительный узел IBM xSeries 450.
\begin{itemize}
  \item Размер: 4U
  \item Процессор: 4 ядра Itanium 2 1.4 ГГц
  \item ОЗУ: 8 Гб
  \item Диск: 40 Гб
\end{itemize}


\end{document}
